home *** CD-ROM | disk | FTP | other *** search
/ Hardcore Visual Basic 5.0 (2nd Edition) / Hardcore Visual Basic 5.0 - Second Edition (1997)(Microsoft Press).iso / Code / Goodies / NEWINT~1 / OWNERD~1 / STATUS~1.BAS < prev    next >
BASIC Source File  |  1997-06-04  |  2KB  |  53 lines

  1. Attribute VB_Name = "SubClass"
  2. Option Private Module
  3. Option Explicit
  4. Public NextProcs As Long
  5. Public Nodef As Boolean
  6. Public Const WM_SIZE = &H5
  7. Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  8. Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Any) As Long
  9. Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  10.  (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  11. Public Const WM_USER = &H400
  12. Public Const SB_GETRECT = (WM_USER + 10)
  13. Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal wndrpcPrev As Long, ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  14.  
  15.  
  16. Public Const GWL_USERDATA = (-21)
  17. Public Const GWL_WNDPROC = -4
  18.  
  19. Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, _
  20. ByVal wParam As Long, ByVal lParam As Long) As Long
  21. On Error Resume Next
  22.   
  23.  Select Case hwnd
  24.  
  25.         
  26.         Case frmStatusBar.hwnd
  27.              frmStatusBar.ProcMsg hwnd, uMsg, wParam, lParam, 0& ', 0&
  28.       
  29.     End Select
  30.     If Nodef = True Then
  31.     WindowProc = CallWindowProc(NextProcs, hwnd, uMsg, wParam, ByVal lParam)
  32.     Else
  33.     Nodef = False
  34.     Nodef = True
  35.     End If
  36. End Function
  37.  
  38.    
  39.  
  40.  
  41.  Public Sub SubClass(hwnd As Long)
  42. 'NextProcs = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
  43. End Sub
  44. Public Sub UnSubClass()
  45. 'Dim hWndCur As Long
  46. '    hWndCur = Form1.hwnd
  47. '    If NextProcs Then
  48. '        SetWindowLong hWndCur, GWL_WNDPROC, NextProcs
  49. '        NextProcs = 0
  50. '    End If
  51. End Sub
  52.  
  53.